// main.ts

import { createApp } from 'vue';
import ArcoVue from '@arco-design/web-vue';
import ArcoVueIcon from '@arco-design/web-vue/es/icon';
import globalComponents from '@/components';
import store from '@/store';
import router from './router';
import i18n, { initializeI18n } from './locale';
import directive from './directive';
import './mock';
import App from './App.vue';
// 样式通过 arco-plugin 插件导入。详见目录文件 config/plugin/arcoStyleImport.ts
import '@/assets/style/global.less';
import '@/api/interceptor';

// 创建 Vue 应用实例
const app = createApp(App);

// 使用 Pinia 进行状态管理
app.use(store);

// 使用 Arco Design 组件库
app.use(ArcoVue, {});
app.use(ArcoVueIcon);

// 注册全局组件和自定义指令
app.use(globalComponents);
app.use(directive);

// 使用 Vue Router
app.use(router);

// 初始化国际化并挂载应用
initializeI18n()
  .then(() => {
    app.use(i18n).mount('#app');
  })
  .catch(() => {
    app.use(i18n).mount('#app');
  });
